날짜형 데이터 타입

MySQL에서 날짜와 시간을 다루기 위한 데이터 타입이 이있다.

날짜형 데이터 타입

DATE

CREATE TABLE 예제테이블 (
    id INT PRIMARY KEY,
    이벤트_날짜 DATE
);

TIME

CREATE TABLE 예제테이블 (
    id INT PRIMARY KEY,
    시작_시간 TIME
);

DATETIME

CREATE TABLE 예제테이블 (
    id INT PRIMARY KEY,
    이벤트_일시 DATETIME
);

TIMESTAMP

CREATE TABLE 예제테이블 (
    id INT PRIMARY KEY,
    생성_시간 TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

YEAR

CREATE TABLE 예제테이블 (
    id INT PRIMARY KEY,
    연도_정보 YEAR
);

TIMESTAMP VS DATETIME

TIMESTAMP DATETIME
타입 숫자형 문자형
용량 4byte 8byte
입력 Default Insert (AUTO) 명시적 INSERT
형식 1970~01-01 ~ 2038-01-19 (UTC) 1000-00-00 ~ 9999-99-99

TIMESTAMP는 시간을 UTC로 저장되기 때문에 TIME ZONE에 맞는 시간으로 저장된 시간을 볼 수 잇다.
예를 들어 한국에서 2023년 11월 9일 10시에 저장된 데이터가 있을 때, 한국보다 5시간 느린 나라에서 이 데이터를 요청하면 저장된 시간이 해당 나라의 timezone이 적용되어 5시로 표시된다.
그래서 TIMESTAMP와 DATETIME이 서로 다르게 표시될 수 있다.

하지만 TIMESTAMP는 2038-01-19 까지만 저장할 수 없다는 문제가 잇다.
https://en.wikipedia.org/wiki/Year_2038_problem

Reference